const { notEmpty } = require("../utils.js");

module.exports = {
	description: "generate store",
	prompts: [
		{
			type: "input",
			name: "name",
			message: "store name please",
			validate: notEmpty("name")
		},
		{
			type: "checkbox",
			name: "blocks",
			message: "Blocks:",
			choices: [
				{
					name: "state",
					value: "state",
					checked: true
				},
				{
					name: "mutations",
					value: "mutations",
					checked: true
				},
				{
					name: "actions",
					value: "actions",
					checked: true
				}
			],
			validate(value) {
				if (!value.includes("state") || !value.includes("mutations")) {
					return "store require at least state and mutations";
				}
				return true;
			}
		}
	],
	actions(data) {
		const name = "{{name}}";
		const { blocks } = data;
		const options = ["state", "mutations"];
		const joinFlag = `,
  `;
		if (blocks.length === 3) {
			options.push("actions");
		}

		const actions = [
			{
				type: "add",
				path: `src/store/modules/${name}.js`,
				templateFile: "plop-templates/store/index.hbs",
				data: {
					options: options.join(joinFlag),
					state: blocks.includes("state"),
					mutations: blocks.includes("mutations"),
					actions: blocks.includes("actions")
				}
			}
		];
		return actions;
	}
};
